package ai;

import hexxagon.Hexxagon;
import jgame.JGObject;

/**
 * Lớp biểu diễn một quân cờ
 * Piece = quân cờ (tra từ điển rồi :)) )
 */
public class Piece extends JGObject {

    /**
     * khi setStatus thì nên dùng các giá trj hằng này
     */
    public static final int EMPTY = 0;
    public static final int HUMAN = 1;
    public static final int COMPUTER = 2;
    /**
     * First index of this piece
     */
    private int _x;
    /**
     * Second index of this piece
     */
    private int _y;
    /**
     * Status of this piece
     */
    private int status;

    public Piece(int x, int y) {
        super(null, false, 800, 600, 0, null);
        _x = x;
        _y = y;
        status = EMPTY;
    }

    public Piece(int x, int y, int status) {
        super("Piece", true, x, y, 0, "piece_" + status);
        this._x = x;
        this._y = y;
        this.status = status;
        Hexxagon.translateIndexToPos(x, y);
        setPos(Hexxagon.IndexToPos.x, Hexxagon.IndexToPos.y);
    }

    public void setTo(int status) {
        this.status = status;
        setGraphic("piece_" + status);
    }

    public int getStatus() {
        return status;
    }

    /**
     * Set status for this piece.<P>
     * Note: this method is used outside of this class only because
     *       NOT_USED is fixed status<P>
     * Từ sau sẽ ko dùng tiếng Anh nữa :))
     * @param status new status
     */
    public void setStatus(int status) {
        this.status = status;
    }

    /**
     * Kiểm tra xem ô cờ này có phải đang rỗng hay ko
     * @return <b>true</b> if status == EMPTY
     */
    public boolean isEmpty() {
        return status == EMPTY;
    }

    public int getX() {
        return _x;
    }

    public int getY() {
        return _y;
    }
}
